package model

import (
	"encoding/json"

	"strings"
)

// vpc对象
type CreateVpcOption struct {
	// 功能说明：虚拟私有云下可用子网的范围 取值范围： - 10.0.0.0/8 ~ 10.255.255.240/28 - 172.16.0.0/12 ~ 172.31.255.240/28 - 192.168.0.0/16 ~ 192.168.255.240/28 约束：必须是ipv4 cidr格式，例如:192.168.0.0/16

	Cidr *string `json:"cidr,omitempty"`
	// 功能说明：虚拟私有云名称 取值范围：0-64个字符，支持数字、字母、中文、_(下划线)、-（中划线）、.（点） 约束：如果名称不为空，则同一个租户下的名称不能重复

	Name *string `json:"name,omitempty"`
	// 功能说明：虚拟私有云的描述 取值范围：0-255个字符，不能包含“<”和“>”。

	Description *string `json:"description,omitempty"`
	// 功能说明：企业项目ID。创建虚拟私有云时，给虚拟私有云绑定企业项目ID。 取值范围：最大长度36字节，带“-”连字符的UUID格式，或者是字符串“0”。“0”表示默认企业项目。 默认值：\"0\"

	EnterpriseProjectId *string `json:"enterprise_project_id,omitempty"`
}

func (o CreateVpcOption) String() string {
	data, err := json.Marshal(o)
	if err != nil {
		return "CreateVpcOption struct{}"
	}

	return strings.Join([]string{"CreateVpcOption", string(data)}, " ")
}
